Induction of Logic Programs by Example-Guided Unfolding
نویسندگان
چکیده
Resolution has been used as a specialisation operator in several approaches to top-down induction of logic programs. This operator allows the overly general hypothesis to be used as a declarative bias that restricts not only what predicate symbols can be used in produced hypotheses, but also how the predicates can be invoked. The two main strategies for top-down induction of logic programs, Covering and Divide-and-Conquer, are formalised using resolution as a specialisation operator, resulting in two strategies for performing example-guided unfolding. These strategies are compared both theoretically and experimentally. It is shown that the computational cost grows quadratically in the size of the example set for Covering, while it grows linearly for Divide-and-Conquer. This is also demonstrated by experiments, in which the amount of work performed by Covering is up to 30 times the amount of work performed by Divide-and-Conquer. The theoretical analysis shows that the hypothesis space is larger for Covering, and thus more compact hypotheses may be found by this technique than by Divideand-Conquer. However, it is shown that for each non-recursive hypothesis that can be produced by Covering, there is an equivalent hypothesis (w.r.t. the background predicates) that can be produced by Divide-and-Conquer. A major draw-back of Divide-and-Conquer, in contrast to Covering, is that it is not applicable to learning recursive de®nitions. Ó 1999 Elsevier Science Inc. All rights reserved.
منابع مشابه
Induction Proofs by Program Transformations
Unfold/fold transformations have been studied for various declarative programming languages such as functional languages [5, 12, 21], logic programming [14, 22, 23] and constraint logic programming [1, 8, 13]. Some of the most extensively studied transformation systems for logic programs are the unfold/fold transformation systems. At a high level, unfold and fold transformations for definite lo...
متن کاملLearning of Constraint Logic Programs by Combining Unfolding and Slicing Techniques
This paper discusses learning of Constraint Logic Programs using unfolding and slicing technique. The transformation rule for unfolding together with clause removal is a method for specialization of Logic Programs. Slicing is a program analysis technique originally developed for imperative languages. It facilitates the understanding of data flow and debugging. This paper formulates the semantic...
متن کاملProofs by Program Transformations
Logic program transformation systems are often described as a collection of unfolding, folding and goal replacement transformation rules. Given a program P , a logic program transformation system derives a sequence of programs P = P0; P1; : : : ; PN , such that for all 0 i < N , Pi+1 is obtained from Pi by application of one of the above rules. Logic program transformation systems are usually p...
متن کاملTheory-Guideed Induction of Logic Programs by Inference of Regular Languages
Previous resolution-based approaches to theory-guided induction of logic programs produce hypotheses in the form of a set of resolvents of a theory, where the resolvents represent allowed sequences of resolution steps for the initial theory. There are, however, many characterizations of allowed sequences of resolution steps that cannot be expressed by a set of resolvents. One approach to this p...
متن کاملCall Unfolding Strategies for Equational Logic Programs
For a programming system based on term rewrite rules such as equational logic programming, a serious eeciency problem of the generated code is the creation of terms that only serve to drive further pattern matching. In this paper, we deene a terminating call unfolding strategy based on ne-grain partial evaluation that removes much of this unnecessary term allocation for programs in intermediate...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- J. Log. Program.
دوره 40 شماره
صفحات -
تاریخ انتشار 1999